namespace MyConsole
{
    using System;
    using System.Collections;
    using System.Text;


  /**
    利用C#的扩展方法功能为实现了IEnumerable接口的对象提供一个方法，
    该方法返回包含这个对象内的可枚举对象的字符串
    examle:
    using System;
    using MyConsole;

    class Program{
        static void Main(string[] args){
            double[][][] nums =
                new double[][][] {
                    new double[][] {
                        new double[] { 1.1, 2.2, 3.3 },
                        new double[] { 2.1, 3.2, 4.3 }
                    },
                    new double[][] {
                        new double[] { 1.1, 2.2, 3.3 },
                        new double[] { 2.1, 3.2, 4.3 }
                    }
                };
            Console.WriteLine(nums.Dir()); //ouput: [[[1.1,2.2,3.3],[2.1,3.2,4.3]],[[1.1,2.2,3.3],[2.1,3.2,4.3]]]
        }
    }
  **/
    public static class ArrayToString
    {
        public static string Dir<T>(this T arr)
            where T : IEnumerable
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("[");
            foreach (var item in arr)
            {
                sb
                    .Append((
                    (item is IEnumerable)
                        ? (item as IEnumerable).Dir()
                        : item.ToString()
                    ) +
                    ",");
            }
            sb[sb.Length - 1] = ']';
            return sb.ToString();
        }
    }
}
